//https://leetcode.cn/problems/queue-reconstruction-by-height/
package codeRandomThoughts.Test406根据身高重建队列;

import java.util.Arrays;
import java.util.LinkedList;

public class Solution {
    public int[][] reconstructQueue(int[][] people) {
        Arrays.sort(people, (p1, p2) -> {
            //身高相同时,k小的在前面
            if (p1[0] == p2[0]) return p1[1] - p2[1];
            //身高按从大到小排序
            return p2[0] - p1[0];
        });

        LinkedList<int[]> list = new LinkedList<>();
        for (int[] p : people) {
            //前面是索引,后面是要添加的元素
            list.add(p[1], p);
        }

        //不用指定后面的长度,因为装的是指针,java不用知道后面的长度
        return list.toArray(new int[people.length][]);
    }
}
